
[dbo].[amsp_CMMoveContentFolder]
CREATE PROCEDURE amsp_CMMoveContentFolder
@InMoveNavMenuID numeric,
@InTargetNavMenuID numeric,
@OutErrorMessage varchar(255) = NULL OUTPUT
AS
BEGIN
DECLARE
@Title varchar(255),
@BeforeID numeric,
@ChildNum integer,
@TargetCategoryDepth integer
SELECT @TargetCategoryDepth = CategoryDepth
FROM Nav_Menu
WHERE NavMenuID = @InTargetNavMenuID
IF @TargetCategoryDepth = 0
SELECT @ChildNum = Count(*)
FROM Nav_Menu
WHERE CategoryDepth = 1
AND NavContentGroupInd = 'C'
ELSE
SELECT @ChildNum = Count(*)
FROM Nav_Menu
WHERE IsNull(ParentNavMenuID,0) = IsNull(@InTargetNavMenuID,0)
IF @ChildNum = 0
EXEC amsp_CMMoveNavMenu @InMoveNavMenuID, @InTargetNavMenuID, 'M', 'Lower', @OutErrorMessage OUTPUT
ELSE BEGIN
SELECT @Title = Title
FROM Nav_Menu
WHERE NavMenuID = @InMoveNavMenuID
IF @TargetCategoryDepth = 0
SELECT TOP 1 @BeforeID = NavMenuID
FROM Nav_Menu
WHERE CategoryDepth = 1
AND NavContentGroupInd = 'C'
AND Title < @Title
ORDER BY Title DESC
ELSE
SELECT TOP 1 @BeforeID = NavMenuID
FROM Nav_Menu
WHERE IsNull(ParentNavMenuID,0) = IsNull(@InTargetNavMenuID,0)
AND Title < @Title
ORDER BY Title DESC
IF @BeforeID IS NOT NULL
EXEC amsp_CMMoveNavMenu @InMoveNavMenuID, @BeforeID, 'M', 'Same', @OutErrorMessage OUTPUT
ELSE
EXEC amsp_CMMoveNavMenu @InMoveNavMenuID, @InTargetNavMenuID, 'M', 'Lower', @OutErrorMessage OUTPUT
END
END
GO
GRANT EXECUTE ON [dbo].[amsp_CMMoveContentFolder] TO [IMIS]
GO